netstat —— 显示网络状态和统计信息
netstat [-j jail] [--libxo] [-46AaCLnPRSTWx] [-f protocol_family | -p protocol]
netstat -i | -I interface [-j jail] [--libxo] [-46abdhnW] [-f address_family] [-M core] [-N system]
netstat -w wait [-j jail] [--libxo] [-I interface] [-46d] [-M core] [-N system] [-q howmany]
netstat -s [-j jail] [--libxo] [-46sz] [-f protocol_family | -p protocol] [-M core] [-N system]
netstat -i | -I interface -s [-j jail] [--libxo] [-46s] [-f protocol_family | -p protocol] [-M core] [-N system]
netstat -m [-j jail] [--libxo] [-M core] [-N system]
netstat -B [-j jail] [--libxo] [-z] [-I interface]
netstat -r [-j jail] [--libxo] [-46nW] [-F fibnum] [-f address_family]
netstat -rs [-j jail] [--libxo] [-s] [-M core] [-N system]
netstat -g [-j jail] [--libxo] [-46W] [-f address_family]
netstat -gs [-j jail] [--libxo] [-46s] [-f address_family] [-M core] [-N system]
netstat -Q [-j jail] [--libxo]
netstat -o -4 | -6
netstat -O -4 | -6
netstat 命令显示各种网络相关数据结构的内容。传递的参数决定了命令使用以下哪种输出格式。
netstat [-46AaCLnRSTWx] [-f protocol_family | -p protocol] [-j jail]
显示每个网络协议的活动套接字(协议控制块)列表。
活动套接字的默认显示显示本地和远程地址、发送和接收队列大小(以字节为单位)、协议以及协议的内部状态。如果套接字的地址指定了网络,但没有指定特定的主机地址,则地址格式为“host.port”或“network.port”。当已知时,主机和网络地址分别根据数据库 hosts(5) 和 networks(5) 象征性地显示。如果地址的符号名称未知,或者指定了 -n 选项,则根据地址族以数字形式打印地址。有关Internet IPv4“点格式”的更多信息,请参阅 inet(3) 。未指定或“通配符”的地址和端口显示为“*”。
--libxo
通过 libxo(3) 以多种不同的人类和机器可读格式生成输出。有关命令行参数的详细信息,请参阅 xo_options(7) 。
-4
仅显示IPv4,参阅"GENERAL OPTIONS"
-6
仅显示IPv6,参阅"GENERAL OPTIONS"
-A
显示与套接字关联的协议控制块(protocol control block,PCB)的地址;用于调试。
-a
显示所有套接字的状态;通常不显示服务器进程使用的套接字。
-c
显示每个会话使用的TCP堆栈。
-C
显示TCP套接字的拥塞控制算法和诊断信息。
-L
显示各种侦听队列的大小。第一个计数显示未接受的连接数,第二个计数显示不接受的不完整连接数,而第三个计数是排队连接的最大数量。
-n
不要将数字地址和端口号解析为名称。请参阅"GENERAL OPTIONS"。
-P
显示每个套接字的日志ID。
-R
显示每个套接字的flowid和flowtype。
完整的列表可以在 sys/mbuf.h 的 M_HASHTYPE_* 下找到。
-S
将网络地址显示为数字(如 -n ),但象征性地显示端口。
-T
显示来自TCP控制块的诊断信息。字段包括需要重新传输的数据包数量、接收到的乱序数据包数量以及通告零大小窗口的数据包的数量。
-W
避免截断地址,即使这会导致某些字段溢出。
-x
显示每个互联网套接字的套接字缓冲区和TCP定时器统计信息。
-x 标志使 netstat 输出有关套接字缓冲区中存储的数据的所有记录信息。这些字段是:
-f protocol_family
按 protocol_family 过滤。请参阅"GENERAL OPTIONS"。
-p protocol
按 protocol 过滤。请参阅"GENERAL OPTIONS"。
-j jail
在 jail 中运行。请参阅"GENERAL OPTIONS"。
netstat -i | -I interface [-46abdhnW] [-f address_family] [-M core] [-N system] [-j jail]
显示所有网络接口或已自动配置的单个 interface 的状态(静态配置到系统中但未在启动时定位的接口未显示)。接口名称后的星号(“*”)表示接口已“down”。
当使用 -i (所有接口)或 -I interface 调用 netstat 时,它提供了一个关于传输的数据包、错误和冲突的累积统计表。还显示了接口的网络地址和最大传输单元(“mtu”)。如果同时指定了 -i 和 -I ,-I 将覆盖 -i 的任何实例。
-4
仅显示IPv4,参阅"GENERAL OPTIONS"
-6
仅显示IPv6,参阅"GENERAL OPTIONS"
-a
每个以太网接口和每个IP接口地址都显示了当前使用的多播地址。多播地址显示在与其关联的接口地址后面的单独行上。
-b
显示输入和输出的字节数。
-d
显示丢弃的输出数据包的数量。
-h
以人类可读的形式打印所有计数器。
-n
不要将数字地址和端口号解析为名称。请参阅"GENERAL OPTIONS"。
-W
避免截断地址,即使这会导致某些字段溢出。请参阅"GENERAL OPTIONS"。然而,在大多数情况下,字段宽度是通过 -i 选项自动确定的,这个选项几乎没有效果。
-f protocol_family
按 protocol_family 过滤。请参阅"GENERAL OPTIONS"。
-j jail
在 jail 中运行。请参阅"GENERAL OPTIONS"。
netstat -w wait [-I interface] [-46d] [-M core] [-N system] [-q howmany] [-j jail]
以等待秒为间隔,在所有配置的网络接口或单个接口上显示有关数据包流量的信息。
当使用 -w 选项和 wait 间隔参数调用 netstat 时,它会显示与网络接口相关的统计信息的运行计数。此选项的过时版本使用了一个没有选项的数字参数,目前支持向后兼容性。默认情况下,此显示汇总了所有接口的信息。特定接口的信息可以使用 -I interface 选项显示。
-I interface
仅显示有关界面的信息
-4
仅显示IPv4,参阅"GENERAL OPTIONS"
-6
仅显示IPv6,参阅"GENERAL OPTIONS"
-d
显示丢弃的输出数据包的数量。
-M
使用替代芯。请参阅"GENERAL OPTIONS"。
-N
使用替代内核映像。请参阅"GENERAL OPTIONS"。
-q
输出 howmany 后退出。
-j jail
在 jail 中运行。请参阅"GENERAL OPTIONS"。
netstat -o -4 | -6
打印与路由条目关联的下一跳(nhops)信息。当与 -4 或 -6 一起使用时,分别将输出限制为IPv4或IPv6路由。此选项提供有关路由决策中使用的单个下一跳地址的详细信息。
netstat -O -4 | -6
打印与路由条目关联的下一跳组(nhgrp)信息。当与 -4 或 -6 一起使用时,将输出分别限制为IPv4或IPv6下一跳组。此选项显示多路径或负载平衡路由设置的分组下一跳条目。
netstat -s [-46sz] [-f protocol_family | -p protocol] [-M core] [-N system] [-j jail]
显示每种网络协议的系统范围统计数据。
-4
仅显示IPv4,参阅"GENERAL OPTIONS"
-6
仅显示IPv6,参阅"GENERAL OPTIONS"
-s
如果重复 -s ,则值为零的计数器将被抑制。
-z
显示统计计数器后重置它们。
-f protocol_family
按 protocol_family 过滤。请参阅"GENERAL OPTIONS"。
-p protocol
按 protocol 过滤。请参阅"GENERAL OPTIONS"。
-M
使用替代芯。请参阅"GENERAL OPTIONS"。
-N
使用替代内核映像。请参阅"GENERAL OPTIONS"。
-j jail
在 jail 中运行。请参阅"GENERAL OPTIONS"。
netstat -i | -I interface -s [-46s] [-f protocol_family | -p protocol] [-M core] [-N system] [-j jail]
显示每个网络协议的每个接口统计信息。如果同时指定了 -i 和 -I ,-I 将覆盖 -i 的任何实例。
4
仅显示IPv4,参阅"GENERAL OPTIONS"
-6
仅显示IPv6,参阅"GENERAL OPTIONS"
-s
如果重复 -s ,则值为零的计数器将被抑制。
-f protocol_family
按 protocol_family 过滤。请参阅"GENERAL OPTIONS"。
-p protocol
按 protocol 过滤。请参阅"GENERAL OPTIONS"。
-M
使用替代芯。请参阅"GENERAL OPTIONS"。
-N
使用替代内核映像。请参阅"GENERAL OPTIONS"。
-j jail
在 jail 中运行。请参阅"GENERAL OPTIONS"。
netstat -m [-M core] [-N system] [-j jail]
显示内存管理例程(mbuf(9) )记录的统计信息。网络管理一个专用内存缓冲池。
-M
使用替代芯。请参阅"GENERAL OPTIONS"。
-N
使用替代内核映像。请参阅"GENERAL OPTIONS"。
-j jail
在 jail 中运行。请参阅"GENERAL OPTIONS"。
netstat -B [-z] [-I interface] [-j jail]
显示有关 bpf(4) 对等体的统计信息。这包括bpf设备匹配、丢弃和接收了多少数据包的信息,以及当前缓冲区大小和设备状态的信息。
当使用 -B 选项调用 netstat 时显示的 bpf(4) 标志表示bpf对等体的底层参数。每个标志都表示为一个小写字母。字母和标志之间按出现顺序的映射如下:
| 标志 | 含义 |
|---|---|
| p | 如果滥听(listening promiscuously),则设置 |
| i | 设备上已设置BIOCIMMEDIATE |
| f | BIOCGHDRCMPLT状态:源链路地址正在自动填充 |
| s | BIOCGSEESENT状态:查看接口上本地和远程发起的数据包。 |
| a | 分组接收产生信号 |
| l | (小写L)BIOCLOCK状态:描述符已锁定 |
有关这些标志的更多信息,请参阅 bpf(4) 。
-z
显示统计计数器后重置它们。
-j jail
在 jail 中运行。请参阅"GENERAL OPTIONS"。
netstat -r [-46AnW] [-F fibnum] [-f address_family] [-M core] [-N system] [-j jail]
显示路由表的内容。
当使用路由表选项 -r 调用 netstat 时,它会列出可用路由及其状态。每条路由都由一个目标主机或网络以及一个用于转发数据包的网关组成。标志字段显示了作为二进制选项存储的有关路线的信息集合。 route(8) 和 route(4) 手册页对各个标志进行了更详细的讨论。字母和标志之间的映射如下:
| 字母 | 标志 | 含义 |
|---|---|---|
| 1 | RTF_PROTO1 | 协议特定路由标志#1 |
| 2 | RTF_PROTO2 | 协议特定路由标志#2 |
| 3 | RTF_PROTO3 | 协议特定路由标志#3 |
| B | RTF_BLACKHOLE | 只需丢弃pkts(在更新期间) |
| b | RTF_BROADCAST | 路由表示广播地址 |
| D | RTF_DYNAMIC | 动态创建(通过重定向) |
| G | RTF_GATEWAY | 目的地需要中介转发 |
| H | RTF_HOST | 主机条目(除网络外) |
| L | RTF_LLINFO | 链接地址转换的有效协议 |
| M | RTF_MODIFIED | 动态修改(通过重定向) |
| R | RTF_REJECT | 无法访问主机或网络 |
| s | RTF_STATIC | 手动添加 |
| U | RTF_UP | 路由可用 |
| X | RTF_XRESOLVE | 外部守护进程将proto转换为链接地址 |
为连接到本地主机的每个接口创建直接路由;此类条目的网关字段显示了传出接口的地址。refcnt 字段给出了路线的当前活动使用次数。面向连接的协议通常在连接期间保持单个路由,而无连接协议在发送到同一目的地时获得路由。use 字段提供使用该路由发送的数据包数量的计数。interface 条目指示用于路由的网络接口。
-4
仅显示IPv4,参阅"GENERAL OPTIONS"
-6
仅显示IPv6,参阅"GENERAL OPTIONS"
-n
不要将数字地址和端口号解析为名称。请参阅"GENERAL OPTIONS"。
-W
避免截断地址,即使这会导致某些字段溢出。请参阅"GENERAL OPTIONS"。然而,在大多数情况下,字段宽度是通过 -i 选项自动确定的,这个选项几乎没有效果。
-F
显示带有数字 fibnum 的路由表。如果指定的 fibnum 为 -1 或未指定 -F ,则显示默认路由表。
-f protocol_family
按 protocol_family 过滤。请参阅"GENERAL OPTIONS"。
-M
使用替代芯。请参阅"GENERAL OPTIONS"。
-N
使用替代内核映像。请参阅"GENERAL OPTIONS"。
-j jail
在 jail 中运行。请参阅"GENERAL OPTIONS"。
netstat -rs [-s] [-M core] [-N system] [-j jail]
显示路由统计信息。
-s
如果重复 -s ,则值为零的计数器将被抑制。
-M
使用替代芯。请参阅"GENERAL OPTIONS"。
-N
使用替代内核映像。请参阅"GENERAL OPTIONS"。
-j jail
在 jail 中运行。请参阅"GENERAL OPTIONS"。
netstat -g [-46W] [-f address_family] [-M core] [-N system] [-j jail]
显示多播虚拟接口表和多播转发缓存的内容。只有当内核主动转发多播会话时,这些表中的条目才会出现。此选项仅适用于 inet 和 inet6 地址系列。
-4
仅显示IPv4,参阅"GENERAL OPTIONS"
-6
仅显示IPv6,参阅"GENERAL OPTIONS"
-W
避免截断地址,即使这会导致某些字段溢出。请参阅"GENERAL OPTIONS"。然而,在大多数情况下,字段宽度是通过 -i 选项自动确定的,这个选项几乎没有效果。
-f protocol_family
按 protocol_family 过滤。请参阅"GENERAL OPTIONS"。
-M
使用替代芯。请参阅"GENERAL OPTIONS"。
-N
使用替代内核映像。请参阅"GENERAL OPTIONS"。
-j jail
在 jail 中运行。请参阅"GENERAL OPTIONS"。
netstat -gs [-46s] [-f address_family] [-M core] [-N system] [-j jail]
显示多播路由统计信息。
4
仅显示IPv4,参阅"GENERAL OPTIONS"
-6
仅显示IPv6,参阅"GENERAL OPTIONS"
-s
如果重复 -s ,则值为零的计数器将被抑制。
-f protocol_family
按 protocol_family 过滤。请参阅"GENERAL OPTIONS"。
-M
使用替代芯。请参阅"GENERAL OPTIONS"。
-N
使用替代内核映像。请参阅"GENERAL OPTIONS"。
-j jail
在 jail 中运行。请参阅"GENERAL OPTIONS"。
netstat -Q [-j jail]
显示 netisr(9) 统计数据。标志字段显示可用的ISR处理程序:
| 字母 | 标志 | 含义 |
|---|---|---|
| C | NETISR_SNP_FLAGS_M2CPUID | 能够将mbuf映射到cpu id |
| D | NETISR_SNP_FLAGS_DRAINEDCPU | 具有队列排出处理程序 |
| F | NETISR_SNP_FLAGS_M2FLOW | 能够将mbuf映射到流id |
-j jail
在 jail 中运行。请参阅"GENERAL OPTIONS"。
一些选项具有一般含义:
-4
是 -f inet 的简写(仅显示IPv4)
-6
是 -f inet6 的简写(仅显示IPv6)
-f address_family , -p protocol
将显示限制为指定 address_family 或单个 protocol 的记录。可以识别以下地址族和协议:
| 族 | 协议 |
|---|---|
| inet (AF_INET) | divert, icmp, igmp, ip, ipsec, pim, sctp, tcp, udp |
| inet6 (AF_INET6) | icmp6, ip6, ipsec6, rip6, sctp, tcp, udp |
| pfkey (PF_KEY) | pfkey |
| netgraph, ng (AF_NETGRAPH) | ctrl, data |
| unix (AF_UNIX) | |
| link (AF_LINK) |
如果 protocol 未知或没有统计例程,程序将发出投诉。
-M
从指定的核心而不是默认的 /dev/kmem 中提取与名称列表关联的值。
-N
从指定系统中提取名称列表,而不是从默认系统中提取,默认系统是从其启动的内核映像。
-n
将网络地址和端口显示为数字。通常 netstat 会尝试解析地址和端口,并以符号方式显示它们。指定 -n 两次也将禁用在显示路由表内容时打印默认IPv4和IPv6路由的关键字“default”。
-W
扩大输出;展开地址字段等,以避免截断。域名等非数字值仍可能被截断;必要时使用 -n 选项以避免歧义。
-j jail
在 jail 里执行这些动作。这允许访问网络状态,即使 netstat 二进制文件在 jail 中不可用。
显示接口re0的数据包流量信息(数据包、字节、错误、数据包丢失等),每2秒更新一次,并在5次输出后退出:
xnetstat -w 2 -q 5 -I re0显示任何接口上ICMP的统计信息:
xxxxxxxxxxnetstat -s -p icmp显示路由表:
xxxxxxxxxxnetstat -r与上述相同,但不将数字地址和端口号解析为名称:
xxxxxxxxxxnetstat -rn显示IPv4侦听套接字:
xxxxxxxxxxnetstat -4lxfstat(1), nfsstat(1), procstat(1), ps(1), sockstat(1), libxo(3), xo_options(7), bpf(4), inet(4), route(4), unix(4), hosts(5), networks(5), protocols(5), services(5), iostat(8), route(8), vmstat(8), mbuf(9)
netstat命令出现在4.2BSD中。
WIDE/KAME项目增加了对IPv6的支持。
错误的概念定义不清。